#ifndef LECTEURSYMBOLE_H_
#define LECTEURSYMBOLE_H_

#include <fstream>
#include <string>
using namespace std;

#include "LecteurCaractere.h"
#include "../modele/Symbole.h"

class LecteurSymbole
{
	public:
		LecteurSymbole(string nomFich); // résultat : symCour = premier symbole du fichier nomFich
		void suivant(); // passe au symbole suivant du fichier
		inline Symbole getSymCour()
		{
			return symCour;
		} // accesseur
		inline unsigned int getLigne()
		{
			return ligne;
		} // accesseur
		inline unsigned int getColonne()
		{
			return colonne;
		} // accesseur

	private:
		LecteurCaractere lc; // le lecteur de caracteres
		Symbole symCour; // le symbole courant du lecteur de symboles
		unsigned int ligne, colonne; // coordonnees, dans le fichier, du symbole courant
		void sauterSeparateurs(); // saute dans lc une suite de separateurs consecutifs
		string motSuivant(); // lit dans lc la chaine du prochain symbole et la renvoie en resultat
		void sauterCommentaire();
	    void setSymCour(Symbole symCour);
};

#endif /* LECTEURSYMBOLE_H_ */ 
